package com.huaxindata.im.util;

import android.content.Context;
import android.os.Environment;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * Created by Administrator on 2017/9/5.
 * 文件工具类,主要用来获取本地文件目录
 */

public class FileUtil {

    /**
     * 获取语音文件的存储根路径
     * 文件目录按联系人id分类，不是自己的id
     * @return
     */
    private static String getChatFilePath(Context context){
        String cacheDirStr = getExternalCacheDir(context);
        File cacheDir = new File(cacheDirStr, "chat");
        if (!cacheDir.exists()) {
            cacheDir.mkdirs();
        }
        return cacheDir.getPath();
    }

    /**
     * 如果是自己发的聊天文件之类的则根据接收人id来创建目录
     * 如果是别人发的则根据发送人id来创建目录
     * @param clientId
     * @return
     */
    public static String getChatFileCacheDir(Context context,String clientId){
        String rootPath = getChatFilePath(context);//聊天文件缓存的根目录
        File file = new File(rootPath, "file_" + clientId);
        if (!file.exists()) {
            file.mkdirs();
        }
        //在对应联系人id下创建一个根据日期分类的文件夹
        long timeMillis = System.currentTimeMillis();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String date = dateFormat.format(new Date(timeMillis));
        File dateDir = new File(file, date);
        if (!dateDir.exists()) {
            dateDir.mkdirs();
        }
        return dateDir.getPath();
    }
    /**
     * 获取拓展存储Cache的绝对路径
     */
    private static String getExternalCacheDir(Context context) {
        StringBuilder sb = new StringBuilder();
        File file = context.getExternalCacheDir();
        if (file != null) {
            sb.append(file.getAbsolutePath());
        } else {
            sb.append(Environment.getExternalStorageDirectory().getPath()).append("/Android/data/").append(context.getPackageName())
                    .append("/cache/");
        }
        return sb.toString();
    }
}
